#pragma once 

#include <iostream>
#include "Protocol.hpp"


/*
 * 当前类， 作为线程池当中线程安全队列的元素的类型使用
 * */
class Task{
    private:
        /*
         * 新连接的套接字，后续传递给回调函数当中进行处理
         *    接收浏览器的请求
         *    分析浏览器的请求
         *    回复响应
         * */
        int sock;

        /*
         * 回调类：后面是主要的处理业务流程的
         *      当线程池的线程从队列当中将任务拿出来的时候， 被线程池的线程进行调用， 处理业务
         *  handler是Callback的类对象 in Protocol.hpp 当中
         * */
        CallBack handler; //设置回调
    public:
        Task(){}

        Task(int _sock):sock(_sock){}

        //处理任务
        void ProcessOn(){
            handler(sock);
        }

        ~Task(){}
};
